package com.snaildesign.countdown.model;

import java.io.Serializable;
import java.util.Date;
import org.apache.commons.lang.builder.ToStringBuilder;


/** 
 *        @hibernate.class
 *         table="FAVORITE"
 *     
*/
public class Favorite implements Serializable {

    /** identifier field */
    private String countDownId;

    /** identifier field */
    private String userId;

    /** nullable persistent field */
    private Date collectDate;

    /** nullable persistent field */
    private String remarks;

    /** nullable persistent field */
    private com.snaildesign.countdown.model.UserInfo userInfo;

    /** nullable persistent field */
    private com.snaildesign.countdown.model.CountDown countDown;

    /** full constructor */
    public Favorite(String countDownId, String userId, Date collectDate, String remarks, com.snaildesign.countdown.model.UserInfo userInfo, com.snaildesign.countdown.model.CountDown countDown) {
        this.countDownId = countDownId;
        this.userId = userId;
        this.collectDate = collectDate;
        this.remarks = remarks;
        this.userInfo = userInfo;
        this.countDown = countDown;
    }

    /** default constructor */
    public Favorite() {
    }

    /** minimal constructor */
    public Favorite(String countDownId, String userId) {
        this.countDownId = countDownId;
        this.userId = userId;
    }

    /** 
     *                @hibernate.property
     *                 column="COUNT_DOWN_ID"
     *                 length="15"
     *             
     */
    public String getCountDownId() {
        return this.countDownId;
    }

    public void setCountDownId(String countDownId) {
        this.countDownId = countDownId;
    }

    /** 
     *                @hibernate.property
     *                 column="USER_ID"
     *                 length="100"
     *             
     */
    public String getUserId() {
        return this.userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    /** 
     *            @hibernate.property
     *             column="COLLECT_DATE"
     *             length="7"
     *         
     */
    public Date getCollectDate() {
        return this.collectDate;
    }

    public void setCollectDate(Date collectDate) {
        this.collectDate = collectDate;
    }

    /** 
     *            @hibernate.property
     *             column="REMARKS"
     *             length="200"
     *         
     */
    public String getRemarks() {
        return this.remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    /** 
     *            @hibernate.many-to-one
     *             update="false"
     *             insert="false"
     *         
     *            @hibernate.column
     *             name="USER_ID"
     *         
     */
    public com.snaildesign.countdown.model.UserInfo getUserInfo() {
        return this.userInfo;
    }

    public void setUserInfo(com.snaildesign.countdown.model.UserInfo userInfo) {
        this.userInfo = userInfo;
    }

    /** 
     *            @hibernate.many-to-one
     *             update="false"
     *             insert="false"
     *         
     *            @hibernate.column
     *             name="COUNT_DOWN_ID"
     *         
     */
    public com.snaildesign.countdown.model.CountDown getCountDown() {
        return this.countDown;
    }

    public void setCountDown(com.snaildesign.countdown.model.CountDown countDown) {
        this.countDown = countDown;
    }

    public String toString() {
        return new ToStringBuilder(this)
            .append("countDownId", getCountDownId())
            .append("userId", getUserId())
            .toString();
    }

}
